package com.youmu.sichuansfc.dao;

import com.youmu.sichuansfc.domain.YoumuFundManagerFund;
import com.youmu.sichuansfc.domain.pojo.SearchYoumuFundManagerFund;
import com.youmu.sichuansfc.dto.PageT;

import java.util.List;

/**
 *  基金管理人 旗下的基金
 * @author WYZ
 * @create 2018-01-30 20:10
 * @desc
 **/
public interface FundManagerFundDao {

    /**
     *  基金上传
     * @param YoumuFundManagerFund
     * @return
     */
    public YoumuFundManagerFund upload(YoumuFundManagerFund YoumuFundManagerFund);

    /**
     * 查询单个基金详情
     * @param id
     * @return
     */
    public YoumuFundManagerFund findById(long id);

    /**
     *  通过账号 -->查询账号下基金管理人-->通过基金管理人查询器基金
     * @param fundUserId
     * @param id
     * @return
     */
    public YoumuFundManagerFund fundUserfindfund(long fundUserId, long id);

    /**
     *  根据 类型 和管理人名 查询基金管理人
     * @param investType 投资类型 1 私募证券投资基金管理人；2 私募股权、创业投资基金管理人； 3 其他私募投资基金管理人
     * @param fundManagerName
     * @param num
     * @param size
     * @return
     */

//    @Query("from YoumuFundManagerFund where id=:fundUserId")
//    public List<YoumuFundManagerFund> test(long fundUserId);

    /**
     * 拉取所有基金列表
     * @param fundType 基金类型：1私募证券投资基金；2 私募股权、创业投资基金；3其他投资基金
     * @param searchName  私募基金管理人名称/ 私募基金名称
     * @param num
     * @param size
     * @return
     */
    public PageT findBy(Integer fundType, String searchName, int num, int size);

    /**
     *  后台查询单个基金详情
     * @param id
     * @return
     */
    public SearchYoumuFundManagerFund findById2(Long id);

    /**
     *  拉取该管理人旗下所有基金
     * @param managerId
     * @return
     */
    public List<YoumuFundManagerFund> findByManagerId(Long managerId);

    SearchYoumuFundManagerFund findByFundName(String name);

    /**
     *  拉起账号下 所有基金列表
     * @param fundUserId
     * @param num
     * @param size
     * @return
     */
    PageT fundListByfundUserId(Long fundUserId, int num, int size);

    /**
     *  拉去单个基金的 历史
     * @param fundUserId
     * @param num
     * @param size
     * @param fundId
     * @return
     */
    PageT fundHistoryByfundId(Long fundUserId, int num, int size, Long fundId);
}
